#ifndef NODE_H
#define NODE_H
#include <string>
#include <vector>
#include <shared_mutex>
#include "type.h"
#include "ErrorCode.h"
//#include "DataDefine.h"

using namespace std;

namespace gitstore {
    struct Node;
	class CMetaDataIOBase;
	class CNodeOperation {
	public:
		CNodeOperation();

	public:
		~CNodeOperation();

	public:
        ErrorStatus create(const std::string& ds_name, const std::string& version, const std::string& note, int type, const std::vector<std::string>& parents, Node& node);

	public:
        ErrorStatus dump(shared_ptr<CMetaDataIOBase> io_worker, const Node& node);
        ErrorStatus load(shared_ptr<CMetaDataIOBase> io_worker, const std::string& ds_name, const std::string& version, Node& node);

	};
}
#endif // NODE_H
